Properties
audience: R2
API конфигурации
Приложение SKIF.TAG забирает настройки и отчитывается об их применении двумя запросами. Оба принимают POST с телом в JSON или в виде формы, оба требуют IMEI и пароль терминала — отдельных ключей доступа нет. Пароль задаётся в конфигураторе, см. Настройка терминалов.
Свойства запросов
Получение конфигурации
POST /api/v1/config/lookup
| Параметр | Тип | Описание |
|---|---|---|
| imei | string | IMEI терминала. Пробелы по краям отбрасываются. Обязательный. |
| password | string | Пароль терминала. Обязательный. |
| config_hash | string | Контрольная сумма конфигурации, которая уже стоит на устройстве. Необязательный. |
| config_version | integer | Отметка времени конфигурации на устройстве. Необязательный, используется, если не передан config_hash. |
Если переданный config_hash или config_version совпадает с серверным, ответ короткий:
{ "status": "up_to_date", "config_version": 1775548065, "config_hash": "3f9a…" }
Иначе возвращается полная конфигурация, а терминал переводится в состояние «Конфигурация доставлена на устройство»:
| Поле ответа | Тип | Описание |
|---|---|---|
| imei | integer | IMEI терминала. |
| password | string | Пароль терминала. |
| server | string | Адрес приёмника в виде хост:порт. |
| config_version | integer | Отметка времени последнего изменения конфигурации. |
| min_distance | integer | Минимальное расстояние между точками, метры. |
| min_time | integer | Минимальное время между точками, секунды. |
| operation_mode | string | Режим работы: light, standard или custom. |
| settings_change_available | boolean | Разрешён ли пользователю выбор режима работы. |
| tracker_always_enable | boolean | Запрещено ли пользователю отключать отслеживание. |
| admin_lock_enabled | boolean | Задан ли PIN блокировки настроек. |
| settings_pin | integer, null | Сам PIN, если задан. |
| sos_cancel_available | boolean | Можно ли отменить отправку сигнала SOS. |
| sos_cancellation_duration | integer | Сколько секунд даётся на отмену. |
| sos_send_address | boolean | Отправлять ли адрес вместе с сигналом. |
| extra | object | Дополнительные параметры. Пустой объект, если их нет. |
| config_hash | string | Контрольная сумма конфигурации без imei, password и config_version. |
Поля
sos_*в панели конфигуратора не задаются — они приходят со значениями по умолчанию. В интерфейсе администратора их нет.
Отчёт о применённой конфигурации
POST /api/v1/config/report
Приложение присылает конфигурацию, которая фактически стоит на устройстве. Обязательные параметры те же — imei и password. Остальные поля совпадают по именам с полями ответа lookup; всё, что не входит в этот перечень, отбрасывается.
Ответ:
{ "status": "accepted" }
Когда присланный config_hash (или config_version) впервые совпадает с серверным, терминал переходит в состояние «Конфигурация применена на устройстве», и дата фиксируется. Повторные отчёты дату не сдвигают. Если значения расходятся, в карточке терминала это видно в таблице Параметр / Серверная / На устройстве.
Ошибки
| Код | Ответ | Когда |
|---|---|---|
| 422 | {"error": "missing_params"} |
Не передан imei или password. |
| 401 | {"error": "invalid_credentials"} |
Терминал с таким IMEI не найден либо пароль не подошёл. Попытка попадает в журнал аудита. |
Ограничения
Частота запросов ограничена и считается по двум счётчикам сразу: не более 60 запросов в минуту с одного адреса и не более 10 запросов в минуту на один IMEI. Лимиты общие для lookup и report.
Лимит на адрес поднят под ситуацию, когда весь парк телефонов выходит в сеть через один адрес оператора. Защиту от подбора пароля даёт счётчик на IMEI.
Смотрите также
- Свойства терминала — те же настройки в интерфейсе.
- Журнал аудита — записи о выдаче конфигурации, отчётах и неудачных попытках.